import Vue from 'vue'
import Vuex from 'vuex'
import Axios from 'axios'
Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    list: [],
    gwclist: []
  },
  mutations: {
    /* 点击加入购物车向购物车数组添加数据 */
    addlist(state, item) {
      var findItem = state.gwclist.find(i => {
        return i.id === item.id
      })
      /* gwclist中有找到当前数据时该数据数量++ */
      if (findItem) {
        findItem.count++
      } else {
        /* gwclist中没有找到时，item的count赋值为1 并且添加到gwclist*/
        Vue.set(item, 'count', 1)
        state.gwclist.push(item)
      }
    },
    /* 点击+时 */
    addcount(state, id) {
      /* 查找到对应项 */
      var findItem = state.gwclist.find(item => {
        return item.id === id
      })
      /* 查找到，并且数量>1时++ */
      if (findItem) {
        findItem.count++
      }
    },
    /* 点击-时 */
    remcount(state, id) {
      /* 查找到对应项 */
      var findItem = state.gwclist.find(item => {
        return item.id === id
      })
      /* 查找到，并且数量>1时-- */
      if (findItem && findItem.count > 1) {
        findItem.count--
        /* 数量为1时点击- */
      }else if(findItem.count = 1){
        /* 找到对应项的下标 */
        var findIndex = state.gwclist.findIndex(item => {
          return item.id === id
        })
        /* 找到后删除一个 */
        if(findIndex!==-1){
          state.gwclist.splice(findIndex,1)
        }
      }
    },
    /* 保存总数据 */
    savelist(state, list) {
      state.list = list;
      console.log(state.list);
    }
  },
  actions: {
    /* 异步action */
    request_data({ commit }) {
      Axios.get('/list').then(res => {
        /* 触发同步action，间接修改state */
        commit("savelist", res.data.list)
      })
    }
  },
  modules: {
  }
})
